home *** CD-ROM | disk | FTP | other *** search
/ Maclife 40 / MACLIFE40.ISO.7z / MACLIFE40.ISO / MACLIFE連載 / 特集II DTPデザインを効率化 / AppleScript⁄サンプル / SampleScript / For OtherApplication / Send Time 0.9 / send time.txt < prev    next >
Text File  |  1998-02-09  |  3KB  |  99 lines

  1. global tani_hour, tani_min, tani_sec, Send_hour, Send_min, Send_sec
  2. property Trans_speed : "28.8"
  3.  
  4.  
  5. --直接起動された
  6. on run
  7.     set File_list to {}
  8.     tell application "Finder"
  9.         activate
  10.         repeat with sFile in selection
  11.             set File_list to File_list & (sFile as alias)
  12.         end repeat
  13.         if File_list is {} then
  14.             set File_list to {}
  15.             repeat
  16.                 try
  17.                     choose file with prompt "処理するfileを選んでください(最後はキャンセルを押す)"
  18.                     set File_list to File_list & result
  19.                 on error errMsg number ERRNO
  20.                     if ERRNO is -128 then --キャンセルが押されたら
  21.                         exit repeat
  22.                     else --それ以外の不意打ちには
  23.                         error errMsg & ERRNO
  24.                         exit repeat
  25.                     end if
  26.                 end try
  27.             end repeat
  28.         end if
  29.     end tell
  30.     my main(File_list)
  31. end run
  32.  
  33.  
  34. --ドラッグ&ドロップされた
  35. on open File_list
  36.     my main(File_list)
  37. end open
  38.  
  39.  
  40.  
  41. --計算のメインルーチン
  42. on main(File_list)
  43.     tell application "Finder"
  44.         activate
  45.         set ANS to display dialog "およその通信スピードを入力してください" default answer (Trans_speed as string) buttons {"bps", "Kbps", "Mbps"} default button 2 with icon 1
  46.         set Trans_speed to (text returned of ANS) as number
  47.         set Modem_speed to button returned of ANS
  48.         if Modem_speed = "bps" then
  49.             set Modem_speed to 1
  50.         else if Modem_speed = "Kbps" then
  51.             set Modem_speed to 1024
  52.         else if Modem_speed = "Mbps" then
  53.             set Modem_speed to 1048576
  54.         end if
  55.         
  56.         set File_size to ""
  57.         repeat with aFile in File_list
  58.             set File_size to (File_size as number) + (size of aFile)
  59.         end repeat
  60.         set Send_time to ((File_size * 8) / (Trans_speed * Modem_speed)) div 1
  61.         
  62.         set tani_hour to "" --単位の初期化
  63.         set tani_min to ""
  64.         set tani_sec to ""
  65.         set Send_hour to ""
  66.         set Send_min to ""
  67.         set Send_sec to ""
  68.         
  69.         set Send_time to my jikan(Send_time)
  70.         
  71.         
  72.         display dialog "このファイル(合計:" & File_size & " byte)はおよそ" & return & (Send_time as string) & return & "ぐらいで送れると思いますよ...たぶん(^_^; "
  73.     end tell
  74. end main
  75.  
  76.  
  77. --秒を時間に換算
  78. on jikan(Send_time)
  79.     if Send_time ウ 3600 then
  80.         set Send_hour to Send_time div 3600
  81.         set Send_min to Send_time mod 3600
  82.         set tani_hour to "時間"
  83.         my jikan(Send_min)
  84.     else if Send_time ウ 60 then
  85.         set Send_min to Send_time div 60
  86.         set Send_sec to Send_time mod 60
  87.         set tani_min to "分"
  88.         my jikan(Send_sec)
  89.     else
  90.         set Send_sec to Send_time
  91.         if tani_min = "" and Send_sec = 0 then set Send_sec to 1
  92.         set tani_sec to "秒"
  93.     end if
  94.     set Send_time to (Send_hour as string) & tani_hour & Send_min & tani_min & Send_sec & tani_sec
  95.     return Send_time
  96. end jikan
  97.  
  98.  
  99.